]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
panel: Use dedicated Spinner class
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 22 Jul 2019 14:46:40 +0000 (16:46 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 22 Jul 2019 15:50:52 +0000 (17:50 +0200)
The startup/busy indication in the app menu was left out of commit
22e21ad7d1 because it doesn't use a hard-coded image, but as the
image in the CSS is actually the same used by the spinner class,
drop the "custom" styling and use the regular spinner.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/636

data/theme/gnome-shell-sass/_common.scss
js/ui/panel.js

index ea912ff3c489eb6a8b89da40e0b4f9498805069a..4e64691886cdd202fab71c572588a741867388e6 100644 (file)
@@ -1171,7 +1171,6 @@ StScrollBar {
   // a little unstructured mess:
 
   #appMenu {
-    spinner-image: url("resource:///org/gnome/shell/theme/process-working.svg");
     spacing: 4px;
 
     .label-shadow { color: transparent; }
index e36bf4c3558ccc03eaf54bc8dff490d8fdae9d72..6eb54f3e7274799a7e540759ffe1db7b8c1284f5 100644 (file)
@@ -203,7 +203,6 @@ var AppMenuButton = GObject.registerClass({
         this._busyNotifyId = 0;
 
         let bin = new St.Bin({ name: 'appMenu' });
-        bin.connect('style-changed', this._onStyleChanged.bind(this));
         this.add_actor(bin);
 
         this.bind_property("reactive", this, "can-focus", 0);
@@ -238,9 +237,8 @@ var AppMenuButton = GObject.registerClass({
         this._overviewHidingId = Main.overview.connect('hiding', this._sync.bind(this));
         this._overviewShowingId = Main.overview.connect('showing', this._sync.bind(this));
 
-        this._stop = true;
-
-        this._spinner = null;
+        this._spinner = new Animation.Spinner(PANEL_ICON_SIZE, true);
+        this._container.add_actor(this._spinner.actor);
 
         let menu = new AppMenu(this);
         this.setMenu(menu);
@@ -288,17 +286,6 @@ var AppMenuButton = GObject.registerClass({
                            } });
     }
 
-    _onStyleChanged(actor) {
-        let node = actor.get_theme_node();
-        let [success, icon] = node.lookup_url('spinner-image', false);
-        if (!success || (this._spinnerIcon && this._spinnerIcon.equal(icon)))
-            return;
-        this._spinnerIcon = icon;
-        this._spinner = new Animation.AnimatedIcon(this._spinnerIcon, PANEL_ICON_SIZE);
-        this._container.add_actor(this._spinner.actor);
-        this._spinner.actor.hide();
-    }
-
     _syncIcon() {
         if (!this._targetApp)
             return;
@@ -315,34 +302,11 @@ var AppMenuButton = GObject.registerClass({
     }
 
     stopAnimation() {
-        if (this._stop)
-            return;
-
-        this._stop = true;
-
-        if (this._spinner == null)
-            return;
-
-        Tweener.addTween(this._spinner.actor,
-                         { opacity: 0,
-                           time: SPINNER_ANIMATION_TIME,
-                           transition: "easeOutQuad",
-                           onComplete: () => {
-                               this._spinner.stop();
-                               this._spinner.actor.opacity = 255;
-                               this._spinner.actor.hide();
-                           }
-                         });
+        this._spinner.stop();
     }
 
     startAnimation() {
-        this._stop = false;
-
-        if (this._spinner == null)
-            return;
-
         this._spinner.play();
-        this._spinner.actor.show();
     }
 
     _onAppStateChanged(appSys, app) {